package com.soecode.lyf.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.soecode.lyf.entity.Comment;

public interface CommetDao {
	
	
	/**
	 * 扣除2积分
	 * @param userid
	 * @return
	 */
	int reduceIntegral(String userid);
	/**
	 * 插入问题
	 * @param cmnt
	 * @return
	 */
	int savePost(Comment cmnt);
	/**
	 * 查询所有问题
	 * @return
	 */
	List<Comment> selectAll();
	
	/**
	 * 查询我的所有问题
	 * @return
	 */
	List<Comment> selectMyAll(@Param("userid") String userid);
	
	/**
	 * 查询所有问题按时间
	 */
	List<Comment> selectAllBytime();
	/**
	 * 查询问题详情
	 * @param question
	 * @return
	 */
	List getPostDetail(@Param("questionid") String questionid, @Param("userid") String userid);
	
	/**
	 * 根据问题id查询评论
	 * @param questionid
	 * @param userid
	 * @return
	 */
	List<Comment> getCommentList(@Param("questionid") String questionid, @Param("adopt") String adopt);
	
	/**
	 * 根据评论id查询回复
	 * @param replyid
	 * @param userid
	 * @return
	 */
	List<Comment> getReplyList(@Param("questionid") String questionid, @Param("userid") String userid);
	
	/**
	 * 根据id查询问题点赞集合
	 * @param userid
	 * @return
	 */
	List<Comment> getQuestionPrase(String userid);
	
	/**
	 * 查询评论点赞集合
	 * @param userid
	 * @return
	 */
	List<Comment> getCommentPrase(String userid);
	
	
	/**
	 * 查询回复点赞集合
	 * @param userid
	 * @return
	 */
	List<Comment> getReplyPrase(String userid);
	
	/**
	 * 问题点赞
	 * @param questionid
	 * @param userid
	 * @return
	 */
	int postEnjoy(@Param("uuid") String uuid, @Param("questionid") int questionid,@Param("userid") String userid);
	
	/**
	 * 评论点赞
	 * @param uuid
	 * @param commentid
	 * @param userid
	 * @return
	 */
	int commentEnjoy(@Param("uuid") String uuid, @Param("commentid") int commentid, @Param("userid") String userid);
	
	/**
	 * 回复点赞
	 * @param uuid
	 * @param replyid
	 * @param userid
	 * @return
	 */
	int replyEnjoy(@Param("uuid") String uuid, @Param("replyid") int replyid, @Param("userid") String userid);
	
	/**
	 * 问题取消点赞
	 * @param questionid
	 * @param userid
	 * @return
	 */
	int postEnjoyQuit(@Param("userid") String userid, @Param("questionid") int questionid);
	
	/**
	 * 评论取消点赞
	 * @param userid
	 * @param commentid
	 * @return
	 */
	int CommentEnjoyQuit(@Param("userid") String userid, @Param("commentid") int commentid);
	
	/**
	 * 回复取消点赞
	 * @param userid
	 * @param commentid
	 * @return
	 */
	int ReplyEnjoyQuit(@Param("userid") String userid, @Param("replyid") int replyid);
	
	/**
	 * 问题点赞+1
	 * @param questionid
	 * @return
	 */
	int addEnjoyNum(int questionid);
	
	/**
	 * 评论点赞+1
	 * @param commentid
	 * @return
	 */
	int addCommentEnjoyNum(@Param("commentid") int commentid,@Param("userid") String userid);
	
	/**
	 * 回复点赞+1
	 * @param commentid
	 * @param userid
	 * @return
	 */
	int addReplyEnjoyNum(@Param("replyid") int replyid,@Param("userid") String userid);
	
	/**
	 * 问题评论+1
	 * @param questionid
	 * @return
	 */
	int addCommentNum(int questionid);
	
	/**
	 * 问题点赞-1
	 * @param questionid
	 * @return
	 */
	int reduceEnjoyNum(int questionid);
	
	/**
	 * 评论点赞-1
	 * @param commentid
	 * @return
	 */
	int reduceCommentEnjoyNum(@Param("commentid") int commentid, @Param("userid") String userid);
	
	/**
	 * 回复点赞-1
	 * @param replyid
	 * @param userid
	 * @return
	 */
	int reduceReplyEnjoyNum(@Param("replyid") int replyid, @Param("userid") String userid);
	
	/**
	 * 提交评论
	 * @param questionid
	 * @param userid
	 * @param content
	 * @param time
	 * @return
	 */
	int toComment(Comment cmnt);
	
	/**
	 * 根据评论id查询评论
	 * @param commentId
	 * @return
	 */
	Map selectComment(int commentId);
	
	/**
	 * 查询被回复人userid
	 * @param commentId
	 * @return
	 */
	String selectReplyUserid(int commentId);
	
	/**
	 * 提交回复
	 * @param cmnt
	 * @return
	 */
	int toReply(Comment cmnt);
	
	/**
	 * 评论表回复数字+1
	 * @param commentid
	 * @return
	 */
	int addReplyNum(int commentid);
	
	/**
	 * 根据回复id查询回复
	 * @param replyid
	 * @return
	 */
	HashMap getReplyInfo(int replyid);
}
